/**
 * Correspond à chaque information renvoyé par un site internet
 *
 * Les attributs de bases traités sont les suivants:
 * - name: nom de l'info
 * - id: id de l'info
 * - date: date de l'info
 * - image: image de l'info
 * - link: lien vers l'information complète
 *
 * @param {Object} params les paramètres de l'objet. Il faut au moins avoir l'attribut "id" et "name"
 *
 */
function ItemWebsite(params)
{
	
	var _name;
	var _id;
	var _date;
	var _image;
	var _link;

    /**
     * Renvoie le nom de l'info
     * @return {String} son nom
     */
	this.getName = function() { return _name; }
    /**
     * Renvoie l'id de l'info
     * @return {String} l'id
     */
	this.getId = function() { return _id; }
    /**
     * Renvoie la date de l'info
     * @return {Date} la date
     */
	this.getDate = function() { return _date; }
    /**
     * Renvoie l'image de l'info
     * @return {String} l'image
     */
	this.getImage = function() { return _image; }
    /**
     * Renvoie le lien vers l'information complète
     * @return {String} le lien
     */
	this.getLink = function() { return _link; }

    // Paramètres obligatoires
	var params_needed = ["name", "id"];
	var _this = this;
	
	function _construct(params)
	{
        // Check des paramètres obligatoires
        for (var i = 0; i < params_needed.length; i++)
        {
            var p = params_needed[i];
            if (!isset(params[p]))
            {
                var key = p+"_not_found";
                _this.sendError(I18n.t("errors.ItemWebsite."+key))
            }
        }

        for (var i in params)
        {
            var p = params[i];

            switch(i)
            {
                case "date":
                    _date = p;
                    break;

                case "id":
                    _id = p;
                    break;

                case "image":
                    _image = p;
                    break;

                case "name":
                    _name = p;
                    break;

                case "link":
                    _link = p;
                    break;

                default:
                    if (typeof(p) != "function")
                        _this[i] = p;
                    break;
            }
        }
    }
	
	_construct(params);
	
};

ItemWebsite.$useError();
